package pe.edu.unmsm.fisi.sisconteg.domain.model;

import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 * @author Carlos y Marlon
 */
@Entity
@Table(name = "tb_empresa", catalog = "bdsisconteg")
public class Empresa implements java.io.Serializable {

	private Long idEmpresa;
	private String nombre;
	private Set<ExperienciaLaboral> experienciasLaborales = 
			new HashSet<ExperienciaLaboral>(0);

	public Empresa() {
	}

	public Empresa(String nombre,
			Set<ExperienciaLaboral> experienciasLaborales) {
		this.nombre = nombre;
		this.experienciasLaborales = experienciasLaborales;
	}

	@Id
	@GeneratedValue(strategy = IDENTITY)
	@Column(name = "C_ID_EMPRESA", unique = true, nullable = false)
	public Long getIdEmpresa() {
		return this.idEmpresa;
	}

	public void setIdEmpresa(Long idEmpresa) {
		this.idEmpresa = idEmpresa;
	}

	@Column(name = "T_NOMBRE_EMPRESA", length = 150)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	@OneToMany(fetch = FetchType.LAZY, mappedBy = "empresa")
	public Set<ExperienciaLaboral> getExperienciasLaborales() {
		return this.experienciasLaborales;
	}

	public void setExperienciasLaborales(
			Set<ExperienciaLaboral> experienciasLaborales) {
		this.experienciasLaborales = experienciasLaborales;
	}

}
